

//Classe para mostrar e gerenciar a simulação em cada host
public class Host implements IHost {

    private ICamada gCamadaFisica, gCamadaAplicacao;
    
    public Host(final IMeioDeTransmissao pMeioDeTransmissao, final ConfiguracaoDoHost pConfiguracao){
	//Criação e configuração da camada de Aplicação
	this.gCamadaAplicacao = new Aplicacao();
	this.gCamadaAplicacao.setCamadaInferior(this.gCamadaFisica); // A  principio a camada fisica esta diretamente ligada a camada de Aplicação
	
	//Criação e configuração da Camada Fisica
	this.gCamadaFisica = new Fisica(pConfiguracao.getCamadaFisica(), pMeioDeTransmissao);
	this.gCamadaFisica.setCamadaSuperior(this.gCamadaAplicacao);
    }
    
    
    //metodo para receber a camada Fisica
    @Override
    public void transmitirParaHost(final String pBit) {
	Fisica fisica = (Fisica) this.gCamadaFisica;
	fisica.enviaBitParaCamadaFisica(pBit);
    }

}
